package com.thz.system.service.exam;

import com.thz.system.pojo.exam.dto.ExamAddDTO;
import com.thz.system.pojo.exam.dto.ExamEditDTO;
import com.thz.system.pojo.exam.dto.ExamQueryDTO;
import com.thz.system.pojo.exam.dto.ExamQuestAddDTO;
import com.thz.system.pojo.exam.vo.ExamDetailVO;
import com.thz.system.pojo.exam.vo.ExamVO;
import com.thz.system.pojo.homework.dto.HomeworkAddDTO;
import com.thz.system.pojo.homework.dto.HomeworkQueryDTO;
import com.thz.system.pojo.homework.vo.HomeworkQuestionVO;
import com.thz.system.pojo.homework.vo.HomeworkScoreVO;
import com.thz.system.pojo.homework.dto.HomeworkUserDTO;

import java.util.List;

/**
 * @Description
 * @Author thz
 * @Date 2025/3/24
 */
public interface IExamService {
    List<ExamVO> list(ExamQueryDTO examQueryDTO);

    String add(ExamAddDTO examAddDTO);

    Boolean questionAdd(ExamQuestAddDTO examQuestAddDTO);

    int questionDelete(Long examId, Long questionId);

    ExamDetailVO detail(Long examId);

    int edit(ExamEditDTO examEditDTO);

    int delete(Long examId);

     int publish(Long examId);

    int cancelPublish(Long examId);

    String addHomework(HomeworkAddDTO homeworkAddDTO);

    List<ExamVO> listHomework(HomeworkQueryDTO homeworkQueryDTO);

    int editHomework(ExamEditDTO examEditDTO);

    int deleteHomework(Long examId);

    int publishHomework(Long examId);

    int cancelPublishHomework(Long examId);


    List<HomeworkQuestionVO> getHomeworkQuestionVO(Long examId);

    List<HomeworkUserDTO> getHomeworkUserDTO(Long questionId, Long courseId,Long examId);

    List<HomeworkScoreVO> getHomeworkScore(Long examId, Long courseId);
}
